define (require, exports, module) ->
  # 引入样式
  require 'mods/gsdt/gsdt_css.css'
  # 引入API服务
  gsdt_api = require 'mods/gsdt/gsdt_api'

  module.exports = Vue.extend

    # 组件模板
    template: require 'mods/gsdt/gsdt_tpl.js'

    # 定义变量
    data: () ->
      # 是否加载完成
      loadedSucc: false
      # 加载失败提示语
      loadedFail: ''
      # 公司动态列表数组
      gsdts: []
      # 点击查看更多
      viewMoreTxt: '查看更多'
      # 当前页码
      page: 1
      # 有无数据控制变量
      isHasData: false

    # 定义方法
    methods:

      # 插件加载
      pluginLoad: () ->
        self = @

      # 加载成功
      loadedSuccFunc: () ->
        self = @
        self.$nextTick () ->
          # 加载成功标识
          self.loadedSucc = true
          # 插件加载
          self.pluginLoad()

      gotoPage: (page) ->
        self = @
        self.page = parseInt page
        self.getGsdtList()

      # 日期格式转换 YY-MM-DD
      changeDate: (dateStr) ->
        tmp_year = dateStr.substring 0, 4
        tmp_month = dateStr.substring 4, dateStr.length - 2
        tmp_day = dateStr.substring dateStr.length - 2
        # tmpDate = tmp_year + "-" + tmp_month + "-" + tmp_day
        tmpDate = tmp_year + tmp_month + tmp_day
        return tmpDate 

      # 获取公司动态
      getGsdtList: () ->
        self = @
        pageNum = parseInt(self.page) or 1

        # 查询参数
        params =
          pageNum: pageNum
          pageSize: 10

        return gsdt_api.getGsdtList params
          .then (res) ->

            # 公司动态的数据
            if self.gsdts.length == 0
              if res?.data?.data?.length != 0
                # 隐藏"暂无数据"提示
                self.isHasData = false
                self.gsdts = res?.body?.data
              else
                # 显示"暂无数据"提示
                self.isHasData = true
                # self.viewMoreTxt='已显示全部内容'
            else
              # 隐藏"暂无数据"提示
              self.isHasData = false

              if res?.body?.data?.length != 0
                for item in res?.body?.data
                  self.gsdts.push item
              else
                self.viewMoreTxt ='已显示全部内容'

            self.page = res?.body?.pageNum

            # 加载成功 - 处理函数
            self.loadedSuccFunc()

          .catch (err) ->
            console.log err

      # 公司动态详情页跳转
      toggleHref: (_id) ->
        self = @
        currPath = '/gsdt_detail/' + _id
        self.$router.push currPath

    # 计算属性
    computed:

      # 加载中的样式
      loaddingClass: () ->
        self = @
        if self.loadedSucc
          return 'c-hidden'
        if self.loadedFail
          return 'c-hidden'
        return ''

      # 加载成功的样式
      loadedSuccClass: () ->
        self = @
        return if self.loadedSucc then '' else 'c-vhidden'

      # 加载失败的样式
      loadedFailClass: () ->
        self = @
        return if self.loadedFail then '' else 'c-hidden'

    # 组件初始化执行
    mounted: () ->
      self = @
      self.gotoPage self.page